/*
 * GUI.java
 *
 * Created on 2 Ξ‘Ο€Ο� 2011, 9:20:54 ΞΌΞΌ
 */
package gui;

import data.VisibleStarsInJTable;
import orchestration.Orchestrator;
import javax.swing.UIManager;

/**
 *
 * @author mandim
 */
public class Gui extends javax.swing.JFrame {

    private static final long serialVersionUID = -4715143923818683881L;
    
    Orchestrator or = new Orchestrator();
    GuiUpdater gu = new GuiUpdater(this);
    VisibleStarsInJTable visStarsTable = new VisibleStarsInJTable();

    /** Creates new form GUI */
    public Gui() {
        initComponents();
        createObjects();
    }

    private void createObjects() {
        or.updatePortList();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //@SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        longitudeButtonGroup = new javax.swing.ButtonGroup();
        latitudeButtonGroup = new javax.swing.ButtonGroup();
        tabs = new javax.swing.JTabbedPane();
        settingsTab = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        portList = new javax.swing.JComboBox();
        connectArduinoBtn = new javax.swing.JButton();
        disconnectArduinoBtn = new javax.swing.JButton();
        longitude = new javax.swing.JPanel();
        longitudeDegText = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        longitudeMinText = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        longitudeSecText = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        northRadioButton = new javax.swing.JRadioButton();
        southRadioButton = new javax.swing.JRadioButton();
        latitude = new javax.swing.JPanel();
        latitudeDegText = new javax.swing.JTextField();
        jLabel15 = new javax.swing.JLabel();
        latitudeMinText = new javax.swing.JTextField();
        jLabel16 = new javax.swing.JLabel();
        latitudeSecText = new javax.swing.JTextField();
        jLabel17 = new javax.swing.JLabel();
        eastRadioButton = new javax.swing.JRadioButton();
        westRadioButton = new javax.swing.JRadioButton();
        resetLocationBtn1 = new javax.swing.JButton();
        saveLocationBtn1 = new javax.swing.JButton();
        twoStarAlignmentTab = new javax.swing.JPanel();
        firstStarPanel = new javax.swing.JPanel();
        firstStarNameLabel = new javax.swing.JLabel();
        firstStarRaLabel = new javax.swing.JLabel();
        firstStarDecLabel = new javax.swing.JLabel();
        getFirstObjectPosition = new javax.swing.JButton();
        star1Name = new javax.swing.JLabel();
        star1Ra = new javax.swing.JLabel();
        star1Dec = new javax.swing.JLabel();
        secondStarPanel = new javax.swing.JPanel();
        secondStarNameLabel = new javax.swing.JLabel();
        secondStarRaLabel = new javax.swing.JLabel();
        secondStarDecLabel = new javax.swing.JLabel();
        getSecondObjectPosition = new javax.swing.JButton();
        star2Name = new javax.swing.JLabel();
        star2Ra = new javax.swing.JLabel();
        star2Dec = new javax.swing.JLabel();
        starListScroll = new javax.swing.JScrollPane();
        starListTable = new javax.swing.JTable();
        calibrateBtn = new javax.swing.JButton();
        objectPanel = new javax.swing.JPanel();
        scopeCoordinates = new javax.swing.JPanel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        scopeAlt = new javax.swing.JLabel();
        scopeAz = new javax.swing.JLabel();
        resetXYPosition = new javax.swing.JButton();
        scopeCoordinates1 = new javax.swing.JPanel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        objectsAlt = new javax.swing.JLabel();
        objectsAz = new javax.swing.JLabel();
        scopeCoordinates2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        ra = new javax.swing.JLabel();
        dec = new javax.swing.JLabel();
        stopTracking = new javax.swing.JButton();
        startTracking = new javax.swing.JButton();
        raH = new javax.swing.JTextField();
        raM = new javax.swing.JTextField();
        raS = new javax.swing.JTextField();
        decD = new javax.swing.JTextField();
        decM = new javax.swing.JTextField();
        decS = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        logScrollPane = new javax.swing.JScrollPane();
        log = new javax.swing.JTextArea();
        logLabel = new javax.swing.JLabel();
        menu = new javax.swing.JMenuBar();
        menuItemFile = new javax.swing.JMenu();
        exit = new javax.swing.JMenuItem();
        menuItemEdit = new javax.swing.JMenu();
        clearLog = new javax.swing.JMenuItem();
        about = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Hipparchus");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setMinimumSize(null);

        tabs.setBackground(new java.awt.Color(204, 204, 204));
        tabs.setTabPlacement(javax.swing.JTabbedPane.LEFT);
        tabs.setFont(new java.awt.Font("Tahoma", 1, 14));
        tabs.setPreferredSize(new java.awt.Dimension(700, 338));

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Connect to Telescope", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N

        portList.setFont(new java.awt.Font("Tahoma", 0, 18));
        portList.setPreferredSize(null);

        connectArduinoBtn.setText("Connect");
        connectArduinoBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                connectArduinoBtnActionPerformed(evt);
            }
        });

        disconnectArduinoBtn.setText("Disconnect");
        disconnectArduinoBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                disconnectArduinoBtnActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(portList, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(connectArduinoBtn)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(disconnectArduinoBtn)
                .addContainerGap(497, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                        .addComponent(connectArduinoBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(portList, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(disconnectArduinoBtn, javax.swing.GroupLayout.DEFAULT_SIZE, 44, Short.MAX_VALUE))
                .addContainerGap())
        );

        longitude.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Location Longitude", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N
        longitude.setForeground(new java.awt.Color(102, 102, 102));

        longitudeDegText.setColumns(2);
        longitudeDegText.setFont(new java.awt.Font("Tahoma", 0, 18));
        longitudeDegText.setText("25");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel3.setText("\u00b0");
        jLabel3.setPreferredSize(new java.awt.Dimension(6, 21));
        jLabel3.setVerticalTextPosition(javax.swing.SwingConstants.TOP);

        longitudeMinText.setColumns(2);
        longitudeMinText.setFont(new java.awt.Font("Tahoma", 0, 18));
        longitudeMinText.setText("7");

        jLabel13.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel13.setText("'");
        jLabel13.setPreferredSize(new java.awt.Dimension(4, 21));
        jLabel13.setVerticalTextPosition(javax.swing.SwingConstants.TOP);

        longitudeSecText.setColumns(2);
        longitudeSecText.setFont(new java.awt.Font("Tahoma", 0, 18));
        longitudeSecText.setText("0");

        jLabel14.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel14.setText("''");
        jLabel14.setVerticalTextPosition(javax.swing.SwingConstants.TOP);

        longitudeButtonGroup.add(northRadioButton);
        northRadioButton.setFont(new java.awt.Font("Tahoma", 0, 18));
        northRadioButton.setSelected(true);
        northRadioButton.setText("E");

        longitudeButtonGroup.add(southRadioButton);
        southRadioButton.setFont(new java.awt.Font("Tahoma", 0, 18));
        southRadioButton.setText("W");

        javax.swing.GroupLayout longitudeLayout = new javax.swing.GroupLayout(longitude);
        longitude.setLayout(longitudeLayout);
        longitudeLayout.setHorizontalGroup(
            longitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(longitudeLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(longitudeDegText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(longitudeMinText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(longitudeSecText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel14)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(northRadioButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(southRadioButton)
                .addContainerGap(525, Short.MAX_VALUE))
        );
        longitudeLayout.setVerticalGroup(
            longitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(longitudeLayout.createSequentialGroup()
                .addGroup(longitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel14)
                    .addComponent(longitudeSecText)
                    .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(longitudeMinText)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(longitudeDegText))
                .addContainerGap(14, Short.MAX_VALUE))
            .addGroup(longitudeLayout.createSequentialGroup()
                .addGroup(longitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(northRadioButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(southRadioButton))
                .addContainerGap(11, Short.MAX_VALUE))
        );

        latitude.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Location Latitude", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N

        latitudeDegText.setColumns(2);
        latitudeDegText.setFont(new java.awt.Font("Tahoma", 0, 18));
        latitudeDegText.setText("35");

        jLabel15.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel15.setText("\u00b0");
        jLabel15.setMaximumSize(new java.awt.Dimension(2, 14));
        jLabel15.setMinimumSize(new java.awt.Dimension(2, 14));
        jLabel15.setPreferredSize(new java.awt.Dimension(6, 14));

        latitudeMinText.setColumns(2);
        latitudeMinText.setFont(new java.awt.Font("Tahoma", 0, 18));
        latitudeMinText.setText("19");

        jLabel16.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel16.setText("'");
        jLabel16.setPreferredSize(new java.awt.Dimension(4, 14));

        latitudeSecText.setColumns(2);
        latitudeSecText.setFont(new java.awt.Font("Tahoma", 0, 18));
        latitudeSecText.setText("0");

        jLabel17.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel17.setText("''");

        latitudeButtonGroup.add(eastRadioButton);
        eastRadioButton.setFont(new java.awt.Font("Tahoma", 0, 18));
        eastRadioButton.setSelected(true);
        eastRadioButton.setText("N");

        latitudeButtonGroup.add(westRadioButton);
        westRadioButton.setFont(new java.awt.Font("Tahoma", 0, 18));
        westRadioButton.setText("S");

        javax.swing.GroupLayout latitudeLayout = new javax.swing.GroupLayout(latitude);
        latitude.setLayout(latitudeLayout);
        latitudeLayout.setHorizontalGroup(
            latitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(latitudeLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(latitudeDegText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(latitudeMinText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(latitudeSecText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel17)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(eastRadioButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(westRadioButton)
                .addContainerGap(529, Short.MAX_VALUE))
        );
        latitudeLayout.setVerticalGroup(
            latitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(latitudeLayout.createSequentialGroup()
                .addGroup(latitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(latitudeSecText)
                    .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(latitudeMinText)
                    .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(latitudeDegText))
                .addContainerGap(14, Short.MAX_VALUE))
            .addGroup(latitudeLayout.createSequentialGroup()
                .addGroup(latitudeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(eastRadioButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(westRadioButton))
                .addContainerGap(11, Short.MAX_VALUE))
        );

        resetLocationBtn1.setText("Reset");
        resetLocationBtn1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resetLocationBtn1ActionPerformed(evt);
            }
        });

        saveLocationBtn1.setText("Save");
        saveLocationBtn1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveLocationBtn1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout settingsTabLayout = new javax.swing.GroupLayout(settingsTab);
        settingsTab.setLayout(settingsTabLayout);
        settingsTabLayout.setHorizontalGroup(
            settingsTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(settingsTabLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(settingsTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(settingsTabLayout.createSequentialGroup()
                        .addComponent(saveLocationBtn1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(resetLocationBtn1))
                    .addComponent(latitude, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(longitude, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        settingsTabLayout.setVerticalGroup(
            settingsTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, settingsTabLayout.createSequentialGroup()
                .addContainerGap(16, Short.MAX_VALUE)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(longitude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(latitude, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(settingsTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(saveLocationBtn1)
                    .addComponent(resetLocationBtn1))
                .addContainerGap())
        );

        tabs.addTab("Settings", settingsTab);

        firstStarPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "First Star to Point", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N
        firstStarPanel.setForeground(new java.awt.Color(102, 102, 102));

        firstStarNameLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        firstStarNameLabel.setText("Name:");

        firstStarRaLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        firstStarRaLabel.setText("RA:");

        firstStarDecLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        firstStarDecLabel.setText("Dec:");

        getFirstObjectPosition.setFont(new java.awt.Font("Tahoma", 1, 11));
        getFirstObjectPosition.setText("Set 1st Star");
        getFirstObjectPosition.setMaximumSize(new java.awt.Dimension(102, 23));
        getFirstObjectPosition.setMinimumSize(new java.awt.Dimension(102, 23));
        getFirstObjectPosition.setPreferredSize(new java.awt.Dimension(102, 23));
        getFirstObjectPosition.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                getFirstObjectPositionActionPerformed(evt);
            }
        });

        star1Name.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        star1Ra.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        star1Dec.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        javax.swing.GroupLayout firstStarPanelLayout = new javax.swing.GroupLayout(firstStarPanel);
        firstStarPanel.setLayout(firstStarPanelLayout);
        firstStarPanelLayout.setHorizontalGroup(
            firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(firstStarPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(firstStarNameLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(firstStarRaLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(firstStarDecLabel, javax.swing.GroupLayout.Alignment.TRAILING))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(star1Dec, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)
                    .addComponent(star1Ra, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)
                    .addComponent(star1Name, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(getFirstObjectPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        firstStarPanelLayout.setVerticalGroup(
            firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(firstStarPanelLayout.createSequentialGroup()
                .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(firstStarPanelLayout.createSequentialGroup()
                        .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                            .addComponent(firstStarNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(star1Name, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                            .addComponent(firstStarRaLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(star1Ra, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(firstStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                            .addComponent(firstStarDecLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(star1Dec, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(getFirstObjectPosition, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE))
                .addContainerGap())
        );

        secondStarPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Second Star to Point", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N

        secondStarNameLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        secondStarNameLabel.setText("Name:");

        secondStarRaLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        secondStarRaLabel.setText("RA:");

        secondStarDecLabel.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        secondStarDecLabel.setText("Dec:");

        getSecondObjectPosition.setFont(new java.awt.Font("Tahoma", 1, 11));
        getSecondObjectPosition.setText("Set 2nd Star");
        getSecondObjectPosition.setMaximumSize(new java.awt.Dimension(102, 23));
        getSecondObjectPosition.setMinimumSize(new java.awt.Dimension(102, 23));
        getSecondObjectPosition.setPreferredSize(new java.awt.Dimension(102, 23));
        getSecondObjectPosition.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                getSecondObjectPositionActionPerformed(evt);
            }
        });

        star2Name.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        star2Ra.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        star2Dec.setFont(new java.awt.Font("Trebuchet MS", 0, 18));

        javax.swing.GroupLayout secondStarPanelLayout = new javax.swing.GroupLayout(secondStarPanel);
        secondStarPanel.setLayout(secondStarPanelLayout);
        secondStarPanelLayout.setHorizontalGroup(
            secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(secondStarPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(secondStarPanelLayout.createSequentialGroup()
                        .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(secondStarNameLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(secondStarRaLabel, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(star2Name, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(star2Ra, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(secondStarPanelLayout.createSequentialGroup()
                        .addComponent(secondStarDecLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(star2Dec, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(getSecondObjectPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        secondStarPanelLayout.setVerticalGroup(
            secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(secondStarPanelLayout.createSequentialGroup()
                .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(getSecondObjectPosition, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, secondStarPanelLayout.createSequentialGroup()
                        .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(star2Name, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(secondStarNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(6, 6, 6)
                        .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(star2Ra, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(secondStarRaLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(secondStarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(star2Dec, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(secondStarDecLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );

        starListTable.setAutoCreateRowSorter(true);
        starListTable.setFont(new java.awt.Font("Tahoma", 0, 18));
        starListTable.setModel(visStarsTable);
        starListTable.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        starListTable.getTableHeader().setReorderingAllowed(false);
        starListScroll.setViewportView(starListTable);
        starListTable.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

        calibrateBtn.setFont(new java.awt.Font("Tahoma", 1, 14));
        calibrateBtn.setText("Calibrate Alignment");
        calibrateBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                calibrateBtnActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout twoStarAlignmentTabLayout = new javax.swing.GroupLayout(twoStarAlignmentTab);
        twoStarAlignmentTab.setLayout(twoStarAlignmentTabLayout);
        twoStarAlignmentTabLayout.setHorizontalGroup(
            twoStarAlignmentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(twoStarAlignmentTabLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(twoStarAlignmentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(secondStarPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(firstStarPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(twoStarAlignmentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(calibrateBtn, javax.swing.GroupLayout.DEFAULT_SIZE, 414, Short.MAX_VALUE)
                    .addComponent(starListScroll, javax.swing.GroupLayout.PREFERRED_SIZE, 414, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        twoStarAlignmentTabLayout.setVerticalGroup(
            twoStarAlignmentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(twoStarAlignmentTabLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(twoStarAlignmentTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(twoStarAlignmentTabLayout.createSequentialGroup()
                        .addComponent(firstStarPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(secondStarPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(twoStarAlignmentTabLayout.createSequentialGroup()
                        .addComponent(starListScroll, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(calibrateBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(72, Short.MAX_VALUE))
        );

        tabs.addTab("Two Star Alignment", twoStarAlignmentTab);

        scopeCoordinates.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Telescope Current Position", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel9.setText("Altitude:");

        jLabel10.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel10.setText("Azimuth:");

        scopeAlt.setFont(new java.awt.Font("Tahoma", 0, 24));
        scopeAlt.setMaximumSize(new java.awt.Dimension(118, 22));
        scopeAlt.setMinimumSize(new java.awt.Dimension(118, 22));
        scopeAlt.setPreferredSize(new java.awt.Dimension(118, 22));

        scopeAz.setFont(new java.awt.Font("Tahoma", 0, 24));
        scopeAz.setMaximumSize(new java.awt.Dimension(120, 22));
        scopeAz.setMinimumSize(new java.awt.Dimension(120, 22));
        scopeAz.setPreferredSize(new java.awt.Dimension(120, 22));

        resetXYPosition.setText("Reset Scope Position");
        resetXYPosition.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resetXYPositionActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout scopeCoordinatesLayout = new javax.swing.GroupLayout(scopeCoordinates);
        scopeCoordinates.setLayout(scopeCoordinatesLayout);
        scopeCoordinatesLayout.setHorizontalGroup(
            scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(scopeCoordinatesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(scopeCoordinatesLayout.createSequentialGroup()
                        .addGroup(scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(scopeAz, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                            .addComponent(scopeAlt, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)))
                    .addComponent(resetXYPosition, javax.swing.GroupLayout.DEFAULT_SIZE, 326, Short.MAX_VALUE))
                .addContainerGap())
        );
        scopeCoordinatesLayout.setVerticalGroup(
            scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(scopeCoordinatesLayout.createSequentialGroup()
                .addGroup(scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel9)
                    .addComponent(scopeAlt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(scopeCoordinatesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel10)
                    .addComponent(scopeAz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(resetXYPosition)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel9.getAccessibleContext().setAccessibleName("Alt");

        scopeCoordinates1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Target's Current Position", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N
        scopeCoordinates1.setPreferredSize(new java.awt.Dimension(362, 139));

        jLabel11.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel11.setText("Altitude:");

        jLabel12.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel12.setText("Azimuth:");

        objectsAlt.setFont(new java.awt.Font("Tahoma", 0, 24));
        objectsAlt.setMaximumSize(new java.awt.Dimension(118, 22));
        objectsAlt.setMinimumSize(new java.awt.Dimension(118, 22));
        objectsAlt.setPreferredSize(new java.awt.Dimension(118, 22));

        objectsAz.setFont(new java.awt.Font("Tahoma", 0, 24));
        objectsAz.setMaximumSize(new java.awt.Dimension(120, 22));
        objectsAz.setMinimumSize(new java.awt.Dimension(120, 22));
        objectsAz.setPreferredSize(new java.awt.Dimension(120, 22));

        javax.swing.GroupLayout scopeCoordinates1Layout = new javax.swing.GroupLayout(scopeCoordinates1);
        scopeCoordinates1.setLayout(scopeCoordinates1Layout);
        scopeCoordinates1Layout.setHorizontalGroup(
            scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(scopeCoordinates1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.TRAILING))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(objectsAz, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                    .addComponent(objectsAlt, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE))
                .addContainerGap())
        );
        scopeCoordinates1Layout.setVerticalGroup(
            scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(scopeCoordinates1Layout.createSequentialGroup()
                .addGroup(scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel11)
                    .addComponent(objectsAlt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(scopeCoordinates1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel12)
                    .addComponent(objectsAz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        scopeCoordinates2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Target's Equatorial Coordinates", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(102, 102, 102))); // NOI18N

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel1.setText("H");

        ra.setFont(new java.awt.Font("Tahoma", 0, 18));
        ra.setText("RA:");

        dec.setFont(new java.awt.Font("Tahoma", 0, 18));
        dec.setText("Dec:");

        stopTracking.setText("Stop");
        stopTracking.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                stopTrackingActionPerformed(evt);
            }
        });

        startTracking.setText("Start Tracking");
        startTracking.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                startTrackingActionPerformed(evt);
            }
        });

        raH.setColumns(2);
        raH.setFont(new java.awt.Font("Tahoma", 0, 24));
        raH.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        raH.setText("5");

        raM.setColumns(2);
        raM.setFont(new java.awt.Font("Tahoma", 0, 24));
        raM.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        raM.setText("34");

        raS.setColumns(2);
        raS.setFont(new java.awt.Font("Tahoma", 0, 24));
        raS.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        raS.setText("30");
        raS.setMaximumSize(new java.awt.Dimension(44, 40));
        raS.setMinimumSize(new java.awt.Dimension(44, 40));

        decD.setColumns(2);
        decD.setFont(new java.awt.Font("Tahoma", 0, 24));
        decD.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        decD.setText("22");
        decD.setMaximumSize(new java.awt.Dimension(22, 20));
        decD.setMinimumSize(new java.awt.Dimension(22, 20));

        decM.setColumns(2);
        decM.setFont(new java.awt.Font("Tahoma", 0, 24));
        decM.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        decM.setText("1");
        decM.setMaximumSize(new java.awt.Dimension(22, 20));
        decM.setMinimumSize(new java.awt.Dimension(22, 20));

        decS.setColumns(2);
        decS.setFont(new java.awt.Font("Tahoma", 0, 24));
        decS.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        decS.setText("0");
        decS.setMaximumSize(new java.awt.Dimension(22, 20));
        decS.setMinimumSize(new java.awt.Dimension(22, 20));

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel2.setText("\u00b0");

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel4.setText("M");

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel5.setText("M");

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel6.setText("S");

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel7.setText("S");

        javax.swing.GroupLayout scopeCoordinates2Layout = new javax.swing.GroupLayout(scopeCoordinates2);
        scopeCoordinates2.setLayout(scopeCoordinates2Layout);
        scopeCoordinates2Layout.setHorizontalGroup(
            scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(stopTracking, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE)
                    .addComponent(startTracking, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE)
                    .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                        .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(ra, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(dec, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(raH, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel1))
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(decD, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel2, 0, 0, Short.MAX_VALUE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(raM, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel4))
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(decM, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(decS, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel7))
                            .addGroup(scopeCoordinates2Layout.createSequentialGroup()
                                .addComponent(raS, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel6)))))
                .addContainerGap())
        );
        scopeCoordinates2Layout.setVerticalGroup(
            scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scopeCoordinates2Layout.createSequentialGroup()
                .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(ra)
                    .addComponent(raH, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(raS, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(raM, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(scopeCoordinates2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(dec)
                    .addComponent(decD, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(decM, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(decS, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 44, Short.MAX_VALUE)
                .addComponent(startTracking, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(stopTracking)
                .addContainerGap())
        );

        javax.swing.GroupLayout objectPanelLayout = new javax.swing.GroupLayout(objectPanel);
        objectPanel.setLayout(objectPanelLayout);
        objectPanelLayout.setHorizontalGroup(
            objectPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(objectPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(scopeCoordinates2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(objectPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(scopeCoordinates1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(scopeCoordinates, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(128, Short.MAX_VALUE))
        );
        objectPanelLayout.setVerticalGroup(
            objectPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(objectPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(objectPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(scopeCoordinates2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(objectPanelLayout.createSequentialGroup()
                        .addComponent(scopeCoordinates1, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
                        .addComponent(scopeCoordinates, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(55, Short.MAX_VALUE))
        );

        tabs.addTab("Object Tracking", objectPanel);

        logScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        log.setColumns(20);
        log.setRows(5);
        log.setWrapStyleWord(true);
        log.setPreferredSize(null);
        logScrollPane.setViewportView(log);

        logLabel.setFont(new java.awt.Font("Tahoma", 1, 14));
        logLabel.setText("Log:");

        menuItemFile.setText("File");

        exit.setText("Exit");
        exit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitActionPerformed(evt);
            }
        });
        menuItemFile.add(exit);

        menu.add(menuItemFile);

        menuItemEdit.setText("Edit");

        clearLog.setText("Clear Log");
        clearLog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                clearLogActionPerformed(evt);
            }
        });
        menuItemEdit.add(clearLog);

        about.setText("About");
        menuItemEdit.add(about);

        menu.add(menuItemEdit);

        setJMenuBar(menu);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 951, Short.MAX_VALUE)
                    .addComponent(logLabel)
                    .addComponent(logScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 951, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(logLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(logScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        java.awt.Dimension dialogSize = getSize();
        setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2);
    }// </editor-fold>//GEN-END:initComponents

    private void connectArduinoBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_connectArduinoBtnActionPerformed
        or.connectToSerial((String) portList.getSelectedItem());
    }//GEN-LAST:event_connectArduinoBtnActionPerformed

    private void disconnectArduinoBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_disconnectArduinoBtnActionPerformed
        or.sendMessage("R");
        or.disconnectSerial();
    }//GEN-LAST:event_disconnectArduinoBtnActionPerformed

    private void exitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitActionPerformed
        System.exit(-1);
    }//GEN-LAST:event_exitActionPerformed

    private void clearLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearLogActionPerformed
        log.setText(null);
    }//GEN-LAST:event_clearLogActionPerformed

    private void startTrackingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startTrackingActionPerformed
        or.setRa(raH.getText(), raM.getText(), raS.getText());
        or.setDec(decD.getText(), decM.getText(), decS.getText());
        or.startTracking();
    }//GEN-LAST:event_startTrackingActionPerformed

    private void stopTrackingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stopTrackingActionPerformed
        or.sendMessage("S");
    }//GEN-LAST:event_stopTrackingActionPerformed

    private void resetXYPositionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetXYPositionActionPerformed
        or.sendMessage("R");
    }//GEN-LAST:event_resetXYPositionActionPerformed

    private void getFirstObjectPositionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_getFirstObjectPositionActionPerformed

        // Get the selected row number
        int selectedRow = starListTable.getSelectedRow();

        // Update the gui labels
        star1Name.setText((String) visStarsTable.getValueAt(selectedRow, 0));
        star1Ra.setText((String) visStarsTable.getValueAt(selectedRow, 1));
        star1Dec.setText((String) visStarsTable.getValueAt(selectedRow, 2));

        // Get the decimal values of ra, dec from a constants list and set it to or
        or.setRa(Orchestrator.visibleStarsRa.get(selectedRow));
        or.setDec(Orchestrator.visibleStarsDec.get(selectedRow));
        
        // Get the current alt, az from arduino
        or.sendMessage("T");
        
        // Calculate direction cosines for star 1
        or.calcStar1(or.getRa(), or.getDec());
    }//GEN-LAST:event_getFirstObjectPositionActionPerformed

    private void getSecondObjectPositionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_getSecondObjectPositionActionPerformed
        // Get the selected row number
        int selectedRow = starListTable.getSelectedRow();

        // Update the gui labels
        star2Name.setText((String) visStarsTable.getValueAt(selectedRow, 0));
        star2Ra.setText((String) visStarsTable.getValueAt(selectedRow, 1));
        star2Dec.setText((String) visStarsTable.getValueAt(selectedRow, 2));

        // Get the decimal values of ra, dec from a constants list and set it to or
        or.setRa(Orchestrator.visibleStarsRa.get(selectedRow));
        or.setDec(Orchestrator.visibleStarsDec.get(selectedRow));
        
        // Get the current alt, az from arduino
        or.sendMessage("T");

        // Calculate direction cosines for star 1
        or.calcStar2(or.getRa(), or.getDec());
    }//GEN-LAST:event_getSecondObjectPositionActionPerformed

    private void calibrateBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_calibrateBtnActionPerformed
        or.twoStarAlign();
    }//GEN-LAST:event_calibrateBtnActionPerformed

    private void resetLocationBtn1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetLocationBtn1ActionPerformed
        longitudeDegText.setText("00");
        longitudeMinText.setText("00");
        longitudeSecText.setText("00");
        latitudeDegText.setText("00");
        latitudeMinText.setText("00");
        latitudeSecText.setText("00");
        or.clearVisibleStarLists();
        visStarsTable.updateTableModel();
        visStarsTable.fireTableDataChanged();
    }//GEN-LAST:event_resetLocationBtn1ActionPerformed

    private void saveLocationBtn1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveLocationBtn1ActionPerformed
        or.setLongitude(longitudeDegText.getText(), longitudeMinText.getText(), longitudeSecText.getText(), northRadioButton.isSelected());
        or.setLatitude(latitudeDegText.getText(), latitudeMinText.getText(), latitudeSecText.getText(), eastRadioButton.isSelected());
        or.clearVisibleStarLists();
        or.calcVisibleStars();
        visStarsTable.updateTableModel();
        visStarsTable.fireTableDataChanged();
        starListTable = visStarsTable.autoResizeColWidth(starListTable, visStarsTable);
    }//GEN-LAST:event_saveLocationBtn1ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                Gui gui = new Gui();
                gui.setVisible(true);

            }
        });
        
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenuItem about;
    private javax.swing.JButton calibrateBtn;
    private javax.swing.JMenuItem clearLog;
    private javax.swing.JButton connectArduinoBtn;
    private javax.swing.JLabel dec;
    private javax.swing.JTextField decD;
    private javax.swing.JTextField decM;
    private javax.swing.JTextField decS;
    private javax.swing.JButton disconnectArduinoBtn;
    private javax.swing.JRadioButton eastRadioButton;
    private javax.swing.JMenuItem exit;
    private javax.swing.JLabel firstStarDecLabel;
    private javax.swing.JLabel firstStarNameLabel;
    private javax.swing.JPanel firstStarPanel;
    private javax.swing.JLabel firstStarRaLabel;
    private javax.swing.JButton getFirstObjectPosition;
    private javax.swing.JButton getSecondObjectPosition;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel latitude;
    private javax.swing.ButtonGroup latitudeButtonGroup;
    private javax.swing.JTextField latitudeDegText;
    private javax.swing.JTextField latitudeMinText;
    private javax.swing.JTextField latitudeSecText;
    public javax.swing.JTextArea log;
    private javax.swing.JLabel logLabel;
    private javax.swing.JScrollPane logScrollPane;
    private javax.swing.JPanel longitude;
    private javax.swing.ButtonGroup longitudeButtonGroup;
    private javax.swing.JTextField longitudeDegText;
    private javax.swing.JTextField longitudeMinText;
    private javax.swing.JTextField longitudeSecText;
    private javax.swing.JMenuBar menu;
    private javax.swing.JMenu menuItemEdit;
    private javax.swing.JMenu menuItemFile;
    private javax.swing.JRadioButton northRadioButton;
    private javax.swing.JPanel objectPanel;
    public javax.swing.JLabel objectsAlt;
    public javax.swing.JLabel objectsAz;
    public javax.swing.JComboBox portList;
    private javax.swing.JLabel ra;
    private javax.swing.JTextField raH;
    private javax.swing.JTextField raM;
    private javax.swing.JTextField raS;
    private javax.swing.JButton resetLocationBtn1;
    private javax.swing.JButton resetXYPosition;
    private javax.swing.JButton saveLocationBtn1;
    public javax.swing.JLabel scopeAlt;
    public javax.swing.JLabel scopeAz;
    private javax.swing.JPanel scopeCoordinates;
    private javax.swing.JPanel scopeCoordinates1;
    private javax.swing.JPanel scopeCoordinates2;
    private javax.swing.JLabel secondStarDecLabel;
    private javax.swing.JLabel secondStarNameLabel;
    private javax.swing.JPanel secondStarPanel;
    private javax.swing.JLabel secondStarRaLabel;
    private javax.swing.JPanel settingsTab;
    private javax.swing.JRadioButton southRadioButton;
    private javax.swing.JLabel star1Dec;
    private javax.swing.JLabel star1Name;
    private javax.swing.JLabel star1Ra;
    private javax.swing.JLabel star2Dec;
    private javax.swing.JLabel star2Name;
    private javax.swing.JLabel star2Ra;
    public static javax.swing.JScrollPane starListScroll;
    public javax.swing.JTable starListTable;
    private javax.swing.JButton startTracking;
    private javax.swing.JButton stopTracking;
    private javax.swing.JTabbedPane tabs;
    private javax.swing.JPanel twoStarAlignmentTab;
    private javax.swing.JRadioButton westRadioButton;
    // End of variables declaration//GEN-END:variables
}
